import os
# from spire.doc import *
# from spire.doc.common import *
# https://www.e-iceblue.cn/doc_python_document_operation/python-merge-word-documents.html
# pip install Spire.Doc
#    pip install pypiwin32
#    pip install loguru
#    pip install python-docx

# 下载方式：pip install python-office

# import office
# https://www.python-office.com/course/docs/50-25-merge4docx.html

# pip install python-docx
from docx import Document
 
# 将其余要合并的Word文档添加到列表中
files = []

# def is_doc_file(file_path):
#     file_extension = os.path.splitext(file_path)[1].lower()
#     return file_extension == '.doc'

def get_files_in_folder(folder_path):
    for filename in os.listdir(folder_path):
        # 构建原文件名和新文件名
        file_path = os.path.join(folder_path, filename)
        if filename.endswith('docx'):
            files.append(file_path)
        elif os.path.isdir(file_path):
            get_files_in_folder(file_path)

get_files_in_folder('/Users/zxl/Desktop/人保竞标简历')

for filename in files:
    print(filename)
 
# # 加载第一个Word文档
# doc1 = Document()
# doc1.LoadFromFile('/Users/zxl/Desktop/merge.docx')
 
# # 获取第一个文档的最后一个节
# lastSection = doc1.Sections.get_Item(doc1.Sections.Count - 1)
 
# # 遍历列表中的文档
# for file in files:
#     doc = Document()
#     doc.LoadFromFile(file)
 
#     # 遍历每个文档中的各个节
#     for i in range(doc.Sections.Count):
#         section = doc.Sections.get_Item(i)
 
#         # 遍历各个节中的子对象
#         # for j in range(section.Body.ChildObjects.Count):
#         #     obj = section.Body.ChildObjects.get_Item(j)
            
#         #     # 将每个文档中的子对象添加到第一个文档的最后一个节中
#         #     lastSection.Body.ChildObjects.Add(obj.Clone())

#         # 遍历各个节中的子对象
#         for j in range(section.Body.ChildObjects.Count):
#             obj = section.Body.ChildObjects.get_Item(j)
#             # 将第二个文档中的子对象复制并添加到第一个文档的最后一个节中
#             lastSection.Body.ChildObjects.Add(obj.Clone())
 
# # 保存合并后的文档
# doc1.SaveToFile("/Users/zxl/Desktop/merge.docx")
# doc1.Close()
# doc.Close()


# office.word.merge4docx(input_path=r'/Users/zxl/Desktop/人保竞标简历', 
#                         output_path=r'/Users/zxl/Desktop')


def merge_docx(doc_list, output_path):
    # 创建一个新的Document对象作为合并后的文档
    merged_doc = Document()

    # 遍历每个要合并的文档
    for doc_path in doc_list:
        # 加载源文档
        source_doc = Document(doc_path)

        # 复制所有段落
        for paragraph in source_doc.paragraphs:
            merged_doc.add_paragraph(paragraph.text)

        # 复制所有表格（如果有）
        # for table in source_doc.tables:
        #     new_table = merged_doc.add_table(rows=table.rows._element.tr_lst_len, cols=table.columns._element.tc_lst_len)
        #     for i, row in enumerate(table.rows):
        #         for j, cell in enumerate(row.cells):
        #             new_cell = new_table.cell(i, j)
        #             # 这里只复制了单元格的文本，如果有其他格式需求，需要进一步处理
        #             new_cell.text = cell.text

    # 保存合并后的文档
    merged_doc.save(output_path)
 
# 使用示例
merge_docx(files, '/Users/zxl/Desktop/merged.docx')